package com.cloud.commons.utils.weather;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.cloud.commons.utils.wechat.HttpUtil;
import com.mysql.cj.xdevapi.JsonArray;
import org.apache.http.client.methods.HttpGet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class WeatherUtil {
    private static final Logger LOG = LoggerFactory.getLogger(WeatherUtil.class);

    private static String WEATHER_KEY = "a6f1b37a9c6c40fdb762df3fd50c4079";
//    @Value("${weather.key}")
//    private void setWeatherKey(String key) {
//        WEATHER_KEY = key;
//    }
    /**
     * {weather-type} 代表不同的天气数据类型，必选，请使用以下值替代：now:实况天气、 forecast：3-10天预报、hourly：逐小时预报、lifestyle：生活指数
     * {parameters} 代表请求参数，包括必选和可选参数。所有请求参数均使用 &进行分隔，参数值存在中文或特殊字符的情况，需要对参数进行 url encode
     *  location 1. 城市ID：城市列表
     *           2. 经纬度格式：经度,纬度（经度在前纬度在后，英文,分隔，十进制格式，北纬东经为正，南纬西经为负
     *           3. 城市名称，支持中英文和汉语拼音
     *           4. 城市名称，上级城市 或 省 或 国家，英文,分隔，此方式可以在重名的情况下只获取想要的地区的天气数据，例如 西安,陕西
     *           5. IP
     *           6. 根据请求自动判断，根据用户的请求获取IP，通过 IP 定位并获取城市数据
     *  key
     */
    private final static String heweather_url = "https://free-api.heweather.net/s6/weather/{weather-type}?{parameters}";


    public static JSONObject getHeweatherResult(String weatherType,String city){
        String heweatherUrl = heweather_url.replaceAll("\\{weather-type\\}",weatherType).replaceAll("\\{parameters\\}","location="+ city + "&key=" + WEATHER_KEY);
        JSONObject jsonObject = HttpUtil.httpRequest(heweatherUrl,"GET",null);
        JSONArray jsonValues = jsonObject.getJSONArray("HeWeather6");
        JSONObject jsonObject1 = jsonValues.getJSONObject(0);

        return jsonObject1;
    }
}
